MP4Box [option] input [option]
 -h general:          general options help
 -h hint:             hinting options help
 -h import:           import options help
 -h encode:           encode options help
 -h meta:             meta handling options help
 -h extract:          extraction options help
 -h dump:             dump options help
 -h swf:              Flash (SWF) options help
 -h crypt:            ISMA E&A options help
 -h format:           supported formats help

 -nodes:              lists supported MPEG4 nodes
 -node NodeName:      gets MPEG4 node syntax and QP info
 -xnodes:             lists supported X3D nodes
 -xnode NodeName:     gets X3D node syntax
 -snodes:             lists supported SVG nodes
 -snode NodeName:     gets SVG node syntax
 -languages:          lists supported ISO 639 languages

 -quiet:               quiet mode
 -v:                  verbose mode
 -version:            gets build version


  ////////////////////////////////////////////
 // General Options:
////////////////////////////////////////////
 -inter time_in_ms    interleaves file data (track chunks of time_in_ms)
                       * Note 1: Interleaving is 0.5s by default
                       * Note 2: Performs drift checking accross tracks
                       * Note 3: a value of 0 disables interleaving
 -old-inter time      same as -inter but doesn't perform drift checking
 -tight:              performs tight interleaving (sample based) of the file
                       * Note: reduces disk seek but increases file size
 -flat                stores file with all media data first, non-interleaved
 -frag time_in_ms     fragments file (track fragments of time_in_ms)
                       * Note: Always disables interleaving
 -out filename        specifies output file name
                       * Note: By default input (MP4,3GP) file is overwritten
 -tmp dirname         specifies directory for temporary file creation
                       * Note: Default temp dir is OS-dependent
 -no-sys              removes all MPEG-4 Systems info except IOD (profiles)
                       * Note: Set by default whith '-add' and '-cat'
 -no-iod              removes InitialObjectDescriptor from file
 -isma                rewrites the file as an ISMA 1.0 AV file
 -ismax               same as '-isma' and removes all clock references
 -3gp                 rewrites as 3GPP(2) file (no more MPEG-4 Systems Info)
                       * Note 1: some tracks may be removed in the process
                       * Note 2: always on for *.3gp *.3g2 *.3gpp
 -ipod                rewrites the file for iPod
 -psp                 rewrites the file for PSP devices
 -brand ABCD[:v]      sets major brand of file, with optional version
 -ab ABCD             adds given brand to file's alternate brand list
 -rb ABCD             removes given brand from file's alternate brand list
 -cprt string         adds copyright string to movie
 -chap file           adds chapter information contained in file
 -rem trackID:        removes track from file
 -enable trackID:     enables track
 -disable trackID:    disables track
 -new:                forces creation of a new destination file
 -rem trackID:        removes track from file
 -lang [tkID=]LAN:    sets track language. LAN is the ISO 639-2 code (eng, und)
 -delay tkID=TIME:    sets track start delay in ms.
 -par tkID=PAR:       sets visual track pixel aspect ratio (PAR=N:D or "none")
 -name tkID=NAME:     sets track handler name
                       * NAME can indicate a UTF-8 file ("file://file name"
 -itags tag1[:tag2]:  sets iTunes tags to file - more info: MP4Box -tag-list.
 -split time_sec      splits in files of time_sec max duration
                       * Note: this removes all MPEG-4 Systems media
 -split-size size     splits in files of max filesize kB.
                       * Note: this removes all MPEG-4 Systems media
 -split-chunk S:E     extracts a new file from Start to End (in seconds)
                       * Note: this removes all MPEG-4 Systems media
 -group-add fmt       creates a new grouping information in the file. Format is
                      a colon-separated list of following options:
                      refTrack=ID: ID of the track used as a group reference.
                       If not set, the track will belong to the same group as the previous trackID specified.
                       If 0 or no previous track specified, a new alternate group will be created
                      switchID=ID: ID of the switch group to create.
                       If 0, a new ID will be computed for you
                       If <0, disables SwitchGroup
                      criteria=string: list of space-separated 4CCs.
                      trackID=ID: ID of the track to add to this group.

                       *WARNING* Options modify state as they are parsed:
                        trackID=1:criteria=lang:trackID=2
                       is different from:
                        criteria=lang:trackID=1:trackID=2

 -group-rem-track ID  removes track from its group
 -group-rem ID        removes the track's group
 -group-clean         removes all group information from all tracks
 -ref id:XXXX:refID   adds a reference of type 4CC from track ID to track refID


  ////////////////////////////////////////////
 // Hinting Options:
////////////////////////////////////////////
 -hint:               hints the file for RTP/RTSP
 -mtu size:           specifies RTP MTU (max size) in bytes. Default size is 1450
                       * Note: this includes the RTP header (12 bytes)
 -copy:               copies media data to hint track rather than reference
                       * Note: speeds up server but takes much more space
 -multi [maxptime]:   enables frame concatenation in RTP packets if possible
        maxptime:     max packet duration in ms (optional, default 100ms)
 -rate ck_rate:       specifies rtp rate in Hz when no default for payload
                       * Note: default value is 90000 (MPEG rtp rates)
 -mpeg4:              forces MPEG-4 generic payload whenever possible
 -latm:               forces MPG4-LATM transport for AAC streams
 -static:             enables static RTP payload IDs whenever possible
                       * By default, dynamic payloads are always used


  ////////////////////////////////////////////
 // MPEG-4 Generic Payload Options:
////////////////////////////////////////////
 -ocr:                forces all streams to be synchronized
                       * Most RTSP servers only support synchronized streams
 -rap:                signals random access points in RTP packets
 -ts:                 signals AU Time Stamps in RTP packets
 -size:               signals AU size in RTP packets
 -idx:                signals AU sequence numbers in RTP packets
 -iod:                prevents systems tracks embedding in IOD
                       * Note: shouldn't be used with -isma option

 -add-sdp string:     adds sdp string to (hint) track ("-add-sdp tkID:string")
                      or movie. This will take care of SDP lines ordering
 -unhint:             removes all hinting information.


  ////////////////////////////////////////////
 // Importing Options:
////////////////////////////////////////////

File importing syntax:
 "#video" "#audio":   base import for most AV files
 "#trackID=ID":       track import for IsoMedia and other files
 "#pid=ID":           stream import from MPEG-2 TS
 ":dur=D":            imports only the first D seconds
 ":lang=LAN":         sets imported media language code
 ":delay=delay_ms":   sets imported media initial delay in ms
 ":par=PAR":          sets visual pixel aspect ratio (PAR=Num:Den)
 ":name=NAME":        sets track handler name
 ":disable":          imported track(s) will be disabled
 ":group=G":          adds the track as part of the G alternate group.
                        * If G is 0, the first available GroupID will be picked.
 ":fps=VAL":          same as -fps option
 ":agg=VAL":          same as -agg option
 ":par=VAL":          same as -par option
 ":dref":             same as -dref option
 ":nodrop":           same as -nodrop option
 ":packed":           same as -packed option
 ":sbr":              same as -sbr option
 ":sbrx":             same as -sbrx option
 ":mpeg4":            same as -mpeg4 option
 ":font=name":        specifies font name for text import (default "Serif")
 ":size=s":           specifies font size for text import (default 18)

 -add file:           add file tracks to (new) output file
 -cat file:           concatenates file samples to (new) output file
                       * Note: creates tracks if needed
 -force-cat:          skips media configuration check when concatenating file
                       !!! THIS MAY BREAK THE CONCATENATED TRACK(S) !!!
 -keep-sys:           keeps all MPEG-4 Systems info when using '-add' / 'cat'
 -keep-all:           keeps all existing tracks when using '-add'
                       * Note: only used when adding IsoMedia files

All the following options can be specified as default or for each track.
When specified by track the syntax is ":opt" or ":opt=val".

 -dref:               keeps media data in original file
 -no-drop:             forces constant FPS when importing AVI video
 -packed:             * forces packed bitstream when importing raw ASP
 -sbr:                backward compatible signaling of AAC-SBR
 -sbrx:               non-backward compatible signaling of AAC-SBR
                       * Note: SBR AAC cannot be detected at import time
 -fps FPS:            forces frame rate for video and SUB subtitles import
                       * For raw H263 import, default FPS is 15
                       * For all other imports, default FPS is 25
                      -- THIS IS IGNORED FOR IsoMedia IMPORT --
 -mpeg4:              forces MPEG-4 sample descriptions when possible (3GPP2)
                       For AAC, forces MPEG-4 AAC signaling even if MPEG-2
 -agg N:              aggregates N audio frames in 1 sample (3GP media only)
                       * Note: Maximum value is 15 - Disabled by default


  ////////////////////////////////////////////
 // MPEG-4 Scene Encoding Options:
////////////////////////////////////////////
 -mp4:                specify input file is for encoding.
 -def:                encode DEF names
 -sync time_in_ms:    forces BIFS sync sample generation every time_in_ms
                       * Note: cannot be used with -shadow
 -shadow time_ms:     forces BIFS sync shadow sample generation every time_ms.
                       * Note: cannot be used with -sync
 -log:                generates scene codec log file if available
 -ms file:            specifies file for track importing

Chunk Processing
 -ctx-in file:        specifies initial context (MP4/BT/XMT)
                       * Note: input file must be a commands-only file
 -ctx-out file:       specifies storage of updated context (MP4/BT/XMT)

LASeR Encoding options
 -resolution res:     resolution factor (-8 to 7, default 0)
                       all coords are multiplied by 2^res before truncation
 -coord-bits bits:    bits used for encoding truncated coordinates
                       (0 to 31, default 12)
 -scale-bits bits:    extra bits used for encoding truncated scales
                       (0 to 4, default 0)
 -auto-quant res:     resolution is given as if using -resolution
                       but coord-bits and scale-bits are infered


  ////////////////////////////////////////////
 // Meta handling Options:
////////////////////////////////////////////
 -set-meta args:      sets given meta type - syntax: "ABCD[:tk=ID]"
                       * ABCD: four char meta type (NULL or 0 to remove meta)
                       * [:tk=ID]: if not set use root (file) meta
                                if ID is 0 use moov meta
                                if ID is not 0 use track meta
 -add-item args:      adds resource to meta
                       * syntax: file_path + options (':' separated):
                        tk=ID: meta adressing (file, moov, track)
                        name=str: item name
                        mime=mtype: item mime type
                        encoding=enctype: item content-encoding type
                       * file_path "this" or "self": item is the file itself
 -rem-item args:      removes resource from meta - syntax: item_ID[:tk=ID]
 -set-primary args:   sets item as primary for meta - syntax: item_ID[:tk=ID]
 -set-xml args:       sets meta XML data
                       * syntax: xml_file_path[:tk=ID][:binary]
 -rem-xml [tk=ID]:    removes meta XML data
 -dump-xml args:      dumps meta XML to file - syntax file_path[:tk=ID]
 -dump-item args:     dumps item to file - syntax item_ID[:tk=ID][:path=fileName]
 -package:            packages input XML file into an ISO container
                       * all media referenced except hyperlinks are added to file


  ////////////////////////////////////////////
 // Extracting Options:
////////////////////////////////////////////
 -raw TrackID:        extracts track in raw format when supported
 -raws TrackID:       extract each track sample to a file
                       * Note: "TrackID:N" extracts Nth sample
 -nhnt TrackID:       extracts track in nhnt format
 -nhml TrackID:       extracts track in nhml format (XML nhnt).
                       * Note: "-nhml +TrackID" for full dump
 -single TrackID:     extracts track to a new mp4 file
 -avi TrackID:        extracts visual track to an avi file
 -qcp TrackID:        same as '-raw' but defaults to QCP file for EVRC/SMV
 -aviraw TK:          extracts AVI track in raw format
                      $TK can be one of "video" "audio" "audioN"
 -saf:                remux file to SAF multiplex
                       * Note: can be used when encoding scene descriptions


  ////////////////////////////////////////////
 // Dumping Options:
////////////////////////////////////////////
 -std:                dumps to stdout instead of file
 -info [trackID]      prints movie info / track info if trackID specified
                       * Note: for non IsoMedia files, gets import options
 -bt:                 scene to bt format - removes unknown MPEG4 nodes
 -xmt:                scene to XMT-A format - removes unknown MPEG4 nodes
 -wrl:                scene VRML format - removes unknown VRML nodes
 -x3d:                scene to X3D/XML format - removes unknown X3D nodes
 -x3dv:               scene to X3D/VRML format - removes unknown X3D nodes
 -lsr:                scene to LASeR format
 -diso:               scene IsoMedia file boxes in XML output
 -drtp:               rtp hint samples structure to XML output
 -dts:                prints sample timing to text output
 -sdp:                dumps SDP description of hinted file
 -dcr:                ISMACryp samples structure to XML output

 -ttxt:               Converts input subtitle to GPAC TTXT format
 -ttxt TrackID:       Dumps Text track to GPAC TTXT format
 -srt:                Converts input subtitle to SRT format
 -srt TrackID:        Dumps Text track to SRT format

 -stat:               generates node/field statistics for scene
 -stats:              generates node/field statistics per MPEG-4 Access Unit
 -statx:              generates node/field statistics for scene after each AU

 -hash:               generates SHA-1 Hash of the input file


  ////////////////////////////////////////////
 // SWF Importer Options:
////////////////////////////////////////////

MP4Box can import simple Macromedia Flash files (".SWF")
You can specify a SWF input file with '-bt', 'xmt' and '-mp4' options

 -global:             all SWF defines are placed in first scene replace
                       * Note: By default SWF defines are sent when needed
 -no-ctrl:            uses a single stream for movie control and dictionary
                       * Note: this will disable ActionScript
 -no-text:            removes all SWF text
 -no-font:            removes all embedded SWF Fonts (terminal fonts used)
 -no-line:            removes all lines from SWF shapes
 -no-grad:            removes all gradients from swf shapes
 -quad:               uses quadratic bezier curves instead of cubic ones
 -xlp:                support for lines transparency and scalability
 -flatten ang:        complementary angle below which 2 lines are merged
                       * Note: angle '0' means no flattening


  ////////////////////////////////////////////
 // ISMA Encryption/Decryption Options:
////////////////////////////////////////////
 -crypt drm_file:     crypts a specific track using ISMA AES CTR 128
 -decrypt [drm_file]  decrypts a specific track using ISMA AES CTR 128
                       * Note: drm_file can be omitted if keys are in file
 -set-kms kms_uri     changes KMS location for all tracks or a given one.
                       * to adress a track, use 'tkID=kms_uri'

DRM file syntax for GPAC ISMACryp:
                      File is XML and shall start with xml header
                      File root is an "ISMACryp" element
                      File is a list of "ISMACrypTrack" elements

ISMACrypTrack attributes are
 TrackID:             ID of track to en/decrypt
 key:                 AES-128 key formatted (hex string '0x'+32 chars)
 salt:                CTR IV salt key (64 bits) (hex string '0x'+16 chars)

Encryption only attributes:
 Scheme_URI:          URI of scheme used
 KMS_URI:             URI of key management system
                       * Note: 'self' writes key and salt in the file
 selectiveType:       selective encryption type - understood values are:
   "None":            all samples encrypted (default)
   "RAP":             only encrypts random access units
   "Non-RAP":         only encrypts non-random access units
   "Rand":            random selection is performed
   "X":               Encrypts every first sample out of X (uint)
   "RandX":           Encrypts one random sample out of X (uint)

 ipmpType:            IPMP Signaling Type: None, IPMP, IPMPX
 ipmpDescriptorID:    IPMP_Descriptor ID to use if IPMP(X) is used
                       * If not set MP4Box will generate one for you

  ////////////////////////////////////////////
 // Format Options:
////////////////////////////////////////////

Suppported raw formats and file extensions:
 NHNT                 .media .nhnt .info
 NHML                 .nhml (opt: .media .info)
 MPEG-1-2 Video       .m1v .m2v
 MPEG-4 Video         .cmp .m4v
 H263 Video           .263 .h263
 AVC/H264 Video       .h264 .h26L .264 .26L
 JPEG Images          .jpg .jpeg
 PNG Images           .png
 MPEG 1-2 Audio       .mp3, .m1a, .m2a
 ADTS-AAC Audio       .aac
 AMR(WB) Audio        .amr .awb
 EVRC Audio           .evc
 SMV Audio            .smv

Supported containers and file extensions:
 AVI                  .avi
 MPEG-2 PS            .mpg .mpeg .vob .vcd .svcd
 MPEG-2 TS            .ts .m2t
 QCP                  .qcp
 OGG                  .ogg
 ISO-Media files      no extension checking

Supported text formats:
 SRT Subtitles        .srt
 SUB Subtitles        .sub
 GPAC Timed Text      .ttxt
 QuickTime TeXML Text .xml  (cf QT documentation)

Supported Scene formats:
 MPEG-4 XMT-A         .xmt .xmta .xmt.gz .xmta.gz
 MPEG-4 BT            .bt .bt.gz
 VRML                 .wrl .wrl.gz
 X3D-XML              .x3d .x3d.gz
 X3D-VRML             .x3dv .x3dv.gz
 MacroMedia Flash     .swf (very limitted import support only)